package com.itheima.health.dao;

import com.itheima.health.pojo.Order;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * 体检预约信息dao
 *
 * @author Administrator
 * @date 2023/4/27
 */
@Mapper
public interface OrderDao {

    /**
     * 今日到诊人数
     *
     * @param date
     * @return
     */
    Integer selectVisitsNumByDay(@Param("date") LocalDate date, @Param("orderstatusYes") String orderstatusYes);

    /**
     * 本月预约人数
     *
     * @param monthDate
     * @param date
     * @return
     */
    Integer selectOrderNumByMonth(@Param("monthDate") LocalDate monthDate, @Param("date") LocalDate date);

    /**
     * 今日预约总数
     *
     * @param date
     * @return
     */
    Integer selectOrderNumByDay(LocalDate date);

    /**
     * 本周到诊人数
     * 本周预约人数
     *
     * @param weekDate
     * @param date
     * @return
     */
    Order selectOrder(@Param("weekDate") LocalDate weekDate, @Param("date") LocalDate date);

    /**
     * 本周到诊人数
     *
     * @param weekDate
     * @param date
     * @param orderstatusYes
     * @return
     */
    Integer selectVisitsNumByWeek(@Param("weekDate") LocalDate weekDate,
                                  @Param("date") LocalDate date,
                                  @Param("orderstatusYes") String orderstatusYes);

    /**
     * 本月到诊人数
     *
     * @param monthDate
     * @param date
     * @param orderstatusYes
     * @return
     */
    Integer selectVisitsNumByMonth(@Param("monthDate") LocalDate monthDate,
                                   @Param("date") LocalDate date,
                                   @Param("orderstatusYes") String orderstatusYes);

    /**
     * 本周预约人数
     *
     * @param weekDate
     * @param date
     * @return
     */
    Integer selectOrderNumByWeek(@Param("weekDate") LocalDate weekDate, @Param("date") LocalDate date);


    /**
     * 饼状图套餐 订单数量表
     *
     * @return
     */
    List<Map<String, Integer>> getSetmealReport();
    //根据id查询数据展示
    Map selectAll(Integer id);
}
